import axios from 'axios'
import CookieUtil from './CookieUtil'

// 给axios设置一个默认的请求前缀，会自动给所有axios发送的请求URL自动加上/api
axios.defaults.baseURL = "/api"

// 创建一个axios对象
let send = axios.create()

// 配置axios的拦截器
send.interceptors.request.use(config =>{
  console.log("请求拦截器拦截请求");
  // 判断cookie中有没有token，有将token放请求头中
  let token = CookieUtil.get("authorization")
  // 如果不为null，放到请求头
  if(token){
    config.headers.authorization = token
  }
  // 放行
  return config
})
// 配置响应拦截器
send.interceptors.response.use(res =>{
  // 判断结果是否是403
  if(res.data.code == 403){
    vue.$message.error(res.data.message)
    // 跳转到登录页
    vue.$router.push("/login")
    //
    return
  }

  // 获取token
  let token = res.headers.authorization
  // 响应头中不一定有token
  if(token){
    document.cookie = "authorization=" + token + ";max-age=600000;path=/"
  }
  // 放行：让发请求的地方能接收到数据
  // return res.data  只给发送请求的位置返回data部分，其它如headers就不返回了
  return res
})

// 导出
export default send